#!/bin/bash

# Kafka Tool 服务启动脚本
# 启动后端服务和WebSocket服务

echo "正在启动 Kafka Tool 服务..."

# 检查虚拟环境是否存在
if [ ! -d ".venv" ]; then
    echo "错误: 虚拟环境 .venv 不存在，请先创建虚拟环境"
    exit 1
fi

# 激活虚拟环境
source .venv/bin/activate

# 检查端口是否被占用
check_port() {
    local port=$1
    if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null ; then
        echo "警告: 端口 $port 已被占用"
        return 1
    fi
    return 0
}

# 检查端口8001和8002
check_port 8001
if [ $? -eq 1 ]; then
    echo "WebSocket服务端口8001已被占用，请先停止相关服务"
fi

check_port 8002
if [ $? -eq 1 ]; then
    echo "后端服务端口8002已被占用，请先停止相关服务"
fi

# 创建日志目录
mkdir -p logs

# 启动WebSocket服务 (Daphne)
echo "启动WebSocket服务 (端口: 8001)..."
nohup daphne -p 8001 kafkatool.asgi:application > logs/websocket.log 2>&1 &
WEBSOCKET_PID=$!
echo $WEBSOCKET_PID > logs/websocket.pid
echo "WebSocket服务已启动，PID: $WEBSOCKET_PID"

# 等待一秒确保WebSocket服务启动
sleep 1

# 启动Django后端服务
echo "启动Django后端服务 (端口: 8002)..."
nohup python manage.py runserver 8002 > logs/backend.log 2>&1 &
BACKEND_PID=$!
echo $BACKEND_PID > logs/backend.pid
echo "Django后端服务已启动，PID: $BACKEND_PID"

echo ""
echo "=== 服务启动完成 ==="
echo "WebSocket服务: http://127.0.0.1:8001 (PID: $WEBSOCKET_PID)"
echo "Django后端服务: http://127.0.0.1:8002 (PID: $BACKEND_PID)"
echo ""
echo "日志文件:"
echo "  WebSocket: logs/websocket.log"
echo "  后端服务: logs/backend.log"
echo ""
echo "使用 './stop_services.sh' 停止所有服务"
echo "使用 'tail -f logs/websocket.log' 查看WebSocket日志"
echo "使用 'tail -f logs/backend.log' 查看后端服务日志"